This invention relates to human interface systems for computer control systems, particularly control systems where a first computer is connected to control an electronic device and the first computer is, itself, controlled by a second computer having an input device and a visual output device for communicating with a human operator.
In modern electronic test instruments it is common to employ a digital computer to control the operations of a test instrument and to receive, evaluate, and display the results of data obtained by the test instrument. The computer is typically a microprocessor which is dedicated by firmware to cause the test instrument to perform specific test functions or software programmable to perform any of a variety of test functions. Sometimes that instrument may be controlled by a special purpose computational circuit. The instrument may also be controlled by a general purpose digital computer electrically-interfaced with the test circuitry of the instrument, or with a control computer within the instrument to perform certain functions and to receive, evaluate, and display the results. Such computers, microprocessors, and special purpose computational circuits will be referred to herein generally as "processors."
Where the instrument contains a first processor for controlling the instrument and a second processor controls the first processor, the first processor will be referred to as a "slave" processor and the second processor will be referred to as a "master" processor. In a master-slave system, there is ordinarily a respective random access memory associated with each processor, and at least one mass information storage device, such as a magnetic disk, associated with the system. The system also typically includes an input device, such as a keyboard associated with the master processor, and a visual output device such as a cathode ray tube ("CRT") display or a printer, associated with the master processor.
In programmable computer controlled test instruments it is often desirable to change the control computer program in order to perform different test, data evaluation, or output functions. The software typically comprises several functionally distinct parts, such as parts which perform the human interface, circuit control, file storage, and computational functions. Sometimes these parts are divided between different programs. In particular, in a master-slave system, the computational function is ordinarily performed by a program in the slave processor, while the human interface function is ordinarily performed by a program in the master processor. In order that one program "understand" the operation of the other and that the human interface function of the master processor program accurately represents the computational functions performed by the slave processor program, it has heretofore been necessary to change both programs simultaneously.
There are a number of disadvantages associated with the necessity of simultaneously changing the master and slave processor programs in a master-slave system. First, the total program code for both programs is normally very large, which requires a long time to load from the storage device to the processor memory and also requires a large amount of storage space for all of the various test function programs. Second, passing information from an existing program to a new one is difficult. Third, additional master processor programs, at least the human interface part of the master processor program, must be written and maintained for each slave processor program, even though the differences in the human interface part may be small. Since the amount of code required for the human interface part of the master program typically far exceeds the amount of code required for the slave program, for example, where the master program requires 300,000 bytes of code and the slave program only requires 1,000 bytes of code, this requires an excessive amount of storage space for multiple master programs to perform very similar functions. Fourth, the use of many distinct programs makes the system more complicated to use, and less "user friendly."
Thence, it can be seen that there is a need for a master-slave processor human interface system that reduces program storage requirements, overhead, and changeover time, and system complexity.